home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Utilities / Winter Shell 1.0d2 / Source / Libraries / FloatMenuLib / FloatMenuET.c next >
Encoding:
C/C++ Source or Header  |  1994-01-13  |  1.2 KB  |  62 lines  |  [TEXT/KAHL]

  1. #include "EventLib.h"
  2. #include "FloatMenuLib.h"
  3.  
  4. static EventTableType gEventTable;
  5. static TaskHandle gAdjustTask;
  6.     
  7. static Boolean within(EventObjectType object, Point where)
  8. {
  9.     return(true);
  10. }
  11.  
  12. static Boolean mousedown(EventObjectType object, EventRecord *event)
  13. {
  14.     FloatMenuChoose(object);
  15.     return(true);
  16. }
  17.  
  18. static void update(EventObjectType object)
  19. {
  20.     FloatMenuDraw(object);
  21. }
  22.  
  23. static void close(EventObjectType object)
  24. {
  25.     FloatMenuClose(object);
  26. }
  27.  
  28. static void adjustTask(TaskHandle task, void *data)
  29. {
  30.     check(task == gAdjustTask);
  31.     EventPostTaskDelete(gAdjustTask);
  32.     gAdjustTask = NULL;
  33.     FloatMenuAdjustAll();
  34. }
  35.  
  36. static void adjustmenu(void)
  37. {
  38.     if (! gAdjustTask)
  39.         gAdjustTask = EventPostTaskInsert(adjustTask, NULL);
  40. }
  41.  
  42. static void memorylow(void)
  43. {
  44.     FloatMenuMemoryLow();
  45. }
  46.  
  47. const /* EventTableType */ void *FloatMenuEventTable(void)
  48. {
  49.     return(&gEventTable);
  50. }
  51.  
  52. void FloatMenuEventTableRegister(void)
  53. {
  54.     gEventTable.window.update = update;
  55.     gEventTable.window.close = close;
  56.     gEventTable.focusWindow.within = within;
  57.     gEventTable.focusWindow.mousedown = mousedown;
  58.     gEventTable.objectType.adjustmenu = adjustmenu;
  59.     gEventTable.objectType.memorylow = memorylow;
  60.     EventTableRegister(&gEventTable);
  61. }
  62.